/*
* JBoss, Home of Professional Open Source
* Copyright 2013, Red Hat, Inc. and/or its affiliates, and individual
* contributors by the @authors tag. See the copyright.txt in the
* distribution for a full listing of individual contributors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.switchyard.quickstarts.camel.sql;
import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.InitialContext;
import javax.naming.NameAlreadyBoundException;
import javax.sql.DataSource;
import org.h2.jdbcx.JdbcDataSource;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.switchyard.component.test.mixins.naming.NamingMixIn;
import org.switchyard.test.SwitchYardRunner;
/**
* Base class for SQL binding tests.
*
* @author Lukasz Dywicki
*/
@RunWith(SwitchYardRunner.class)
public abstract class CamelSqlBindingTest {
private static JdbcDataSource dataSource;
protected static Connection connection;
protected final static String RECEIVER = "Keith";
protected final static String SENDER = "David";
private static NamingMixIn namingMixIn;
@BeforeClass
public static void startUp() throws Exception {
dataSource = new JdbcDataSource();
dataSource.setURL("jdbc:h2:mem:test");
dataSource.setUser("sa");
dataSource.setPassword("sa");
connection = dataSource.getConnection();
String createStatement = "CREATE TABLE greetings ("
+ "id INT PRIMARY KEY AUTO_INCREMENT, "
+ "receiver VARCHAR(255), "
+ "sender VARCHAR(255) "
+ ");";
connection.createStatement().executeUpdate("DROP TABLE IF EXISTS greetings");
connection.createStatement().executeUpdate(createStatement);
namingMixIn = new NamingMixIn();
namingMixIn.initialize();
bindDataSource(namingMixIn.getInitialContext(), "java:jboss/myDS", dataSource);
}
private static void bindDataSource(InitialContext context, String name, DataSource ds) throws Exception {
try {
context.bind(name, ds);
} catch (NameAlreadyBoundException e) {
e.getMessage(); // ignore
}
}
@AfterClass
public static void shutDown() throws SQLException {
if (!connection.isClosed()) {
connection.close();
}
namingMixIn.uninitialize();
}
}